import { Component, CSSProperties } from 'vue'
import { AnimateCssPropsType } from '../SAnimateCss'
import { LogoCollapseStrategyConst } from './consts'

export const LogoCollapseStrategyConstType_Name = 'LogoCollapseStrategyConstType'
export const LogoProps_Name = 'LogoProps'

export type LogoCollapseStrategyConstType =
  (typeof LogoCollapseStrategyConst)[keyof typeof LogoCollapseStrategyConst]

export type LogoProps = {
  // 是否折叠
  collapse?: boolean
  // 折叠策略
  collapseStrategy?: LogoCollapseStrategyConstType
  // 图标组件
  icon?: Component
  // 图标组件 Props
  iconProps?: Record<string, any>
  // 折叠状态下图标组件 Props
  iconPropsCollapsed?: Record<string, any>
  // 图标动画组件 Props
  iconAnimateProps?: AnimateCssPropsType
  // 标题
  title?: string | Component
  // 标题样式类名
  titleClass?: string[] | string
  // 标题样式
  titleStyle?: string | Partial<CSSProperties>
  // 标题组件 Props
  titleProps?: Record<string, any>
  // 标题动画组件 Props
  titleAnimateProps?: AnimateCssPropsType
}
